var Bancos =
{
	modeloLocal: new Rin.Model
	({
		lista: [ ], lista_vacia: 1,
		total: 0, pagina: 1, paginas: 0, count: 20, _count: 20
	}),

	cancelarEditarBanco: function ()
	{
		$("#frmEditarBanco").slideUp("fast");
	},

	cancelarRegistroBanco: function ()
	{
		$("#frmRegistroBanco").slideUp("fast");
	},

	expandirRegistroBanco: function ()
	{
		$("#frmRegistroBanco").slideDown("fast");
	},

	borrarBanco: function (id_banco)
	{
		Ajax.request ("code/api/c_bancos.php", { op: "eliminar", id: id_banco }, function (r)
		{
			Bancos.cargarLista();
		});
	},

	editarBanco: function (id_banco)
	{
		var lista = Bancos.modeloLocal.get("lista");

		for (var i = 0; i < lista.length; i++)
		{
			if (lista[i].id == id_banco)
			{
				Bancos.frmEditarBanco.setFieldValues (lista[i]);

				$("#frmEditarBanco").slideDown("fast");
				break;
			}
		}
	},

	pagAnterior: function ()
	{
		var m = this.modeloLocal;

		if (m.get("pagina") <= 1) return;
		m.set("pagina", m.get("pagina") - 1);

		this.filtrarLista();
	},

	pagSiguiente: function ()
	{
		var m = this.modeloLocal;

		if (m.get("pagina") >= m.get("paginas")) return;
		m.set("pagina", m.getInt("pagina") + 1);

		this.filtrarLista();
	},

	exportar: function (full)
	{
		var m = this.modeloLocal.get();

		var data = { op: "exportar", offset: (m.pagina-1)*m.count, count: m.count, full: full ? 1 : 0 };
		var url = "code/api/c_bancos.php?" + $.param(data);

		window.open (url);
	},

	filtrarLista: function ()
	{
		var m = this.modeloLocal.get();

		Ajax.request ("code/api/c_bancos.php", { op: "listar", offset: (m.pagina-1)*m.count, count: m.count }, function (r)
		{
			Bancos.modeloLocal.set ("lista_vacia", r.datos.length == 0 ? 1 : 0);
			Bancos.modeloLocal.set ("lista", r.datos);
		});
	},

	cargarLista: function ()
	{
		var m = this.modeloLocal.get();

		if (m.count != m._count)
			m.pagina = 1;

		Ajax.request ("code/api/c_bancos.php", { op: "contar" }, function (r)
		{
			if (r.total == m.total && m.count == m._count) return;

			Bancos.modeloLocal.set ({
				paginas: Math.floor ((parseInt(r.total) + parseInt(m.count) - 1) / m.count),
				total: r.total,
				pagina: 1
			});
		});

		this.filtrarLista();
	}
};

//------------------------------------------------------------------------------.
Bancos.frmRegistroBanco = new AsyncForm ($("#frmRegistroBanco"));
Bancos.frmRegistroBanco.onFormSubmitted = function ()
{
	$("#frmRegistroBanco").slideUp("fast");

	Bancos.cargarLista();
	Bancos.frmRegistroBanco.setFieldValues (null);
};

Bancos.frmEditarBanco = new AsyncForm ($("#frmEditarBanco"));
Bancos.frmEditarBanco.onFormSubmitted = function ()
{
	$("#frmEditarBanco").slideUp("fast");

	Bancos.cargarLista();
	Bancos.frmEditarBanco.setFieldValues (null);
};

Bancos.cargarLista();
